home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr52 / expand53.zip / XPNGDEMO.ZIP / NGPRINT.PRG < prev    next >
Text File  |  1992-08-18  |  2KB  |  109 lines

  1. * ------------------------------------------------------------------------
  2. * File........:    NGPRINT.PRG
  3. * Author......:    Pepijn Smits
  4. * Copyright...:    (c)1992, by "Softwarebureau Pepijn Smits", Rotterdam.
  5. * Date........:    August 1992
  6. * Compile.....:    Clipper 5.01, Compile with /m /l /n /v
  7. * Notes.......:    Norton Guides Printer: Very Very Simple Norton Guides Printer
  8. *        Use redirection (> or >>) for printing to File/Printer.
  9. * ------------------------------------------------------------------------
  10. #include     "SIMPLEIO.CH"
  11.  
  12. #xtranslate    OutLine( <s> )    =>    OutStd( <s> + chr(13)+chr(10))
  13. #xtranslate    FormFeed()    =>    Chr(12)
  14. #xtranslate    HorizLine()    =>    Replicate('─',78)
  15.  
  16. Procedure Main()
  17. Local cNG := Upper(Alltrim(XPcommandLine()))
  18. Local i,j
  19. ?? "Norton Guides Printer, written by Pepijn Smits using EXPAND.LIB"
  20. ?
  21. if At('.NG',cNG)==0
  22.     cNG+=".NG"
  23. end
  24. cNG := XPqualify(cNG)
  25. if Empty(cNG)
  26.     ? "Error: file not found"
  27.     ?
  28.     quit
  29. end
  30. if !NGopen(cNG)
  31.     ? "Error: specified doesn't seem to be a Norton Guide database"
  32.     ?
  33.     quit
  34. end
  35. ? "Printing `"+NGname()"'"
  36. ? "Norton Guide printed using the Expand Library for Clipper 5.01"
  37. ?
  38. ?
  39. ?
  40. ? PadC("Database Credits",78)
  41. ?
  42. aEval(NGcredit(),{|s|OutLine(Space(8)+s)})
  43. ?
  44. ?
  45. ?
  46. ?
  47. ?
  48. ?
  49. if NGmenus() == 0
  50.     // If there are no menus, then the Guide starts at 378..
  51.     PrintEntry(378)
  52. else
  53.     for i := 1 to NGmenus()
  54.         for j := 1 to NGmenuCount(i)
  55.             ?  FormFeed()
  56.             ?  "Menu: " + NGmenuTitle(i) + " » " + NGmenuLabel(i,j)
  57.             ?
  58.             ?
  59.             PrintEntry(NGmenuEntry(i,j))
  60.         next
  61.     next
  62. end
  63. NGclose()
  64. ?
  65. ?
  66. ?
  67. quit
  68. Return
  69.  
  70. Function PrintEntry(nEntry)
  71. Local nType := NGtype(nEntry)
  72. if nType == 0
  73.     PrintShort(nEntry)
  74. elseif nType == 1
  75.     PrintLong(nEntry)
  76. else
  77.     ? "Error: It seems the Norton Guide contains an Error!"
  78. end
  79. Return (NIL)
  80.  
  81. Function PrintLong(nEntry)
  82. Local aLong := NGlong(nEntry)
  83. Local aSeeAlso := NGseeAlso(nEntry)
  84. ?
  85. aEval(aLong,{|s|OutLine(s)})
  86. ?
  87. if aSeeAlso <> NIL
  88.     ? "See Also: "
  89.     aEval(aSeeAlso,{|e|OutStd('"'+e[1]+'" ')})
  90.     ?
  91.     ?
  92. end
  93. Return (NIL)
  94.  
  95. Function PrintShort(nEntry)
  96. Local aShort := NGshort(nEntry)
  97. Local i
  98. ?
  99. For i := 1 to Len(aShort)
  100.     ? aShort[i][1]
  101.     if aShort[i][2] > 0
  102.         // Got an antry under this one...
  103.         ? HorizLine()
  104.         PrintEntry(aShort[i][2])
  105.         ? HorizLine()
  106.     end
  107. next
  108. Return (NIL)
  109.